package twel.probenprophet.domain.rules.checks;

import javax.validation.constraints.Min;

import org.apache.commons.lang3.builder.ToStringBuilder;

public class Check {

	private int attribute1;
	private int attribute2;
	private int attribute3;
	private int value;
	private int difficulty;
	private boolean minimumEffect;
	private boolean festeMatrix;
	private boolean tollpatsch;
	private boolean spruchhemmung;

	public Check(int attribute1, int attribute2, int attribute3, int value) {
		this.attribute1 = attribute1;
		this.attribute2 = attribute2;
		this.attribute3 = attribute3;
		this.value = value;
	}

	public Check(int attribute1, int attribute2, int attribute3, int value, int difficulty) {
		this(attribute1, attribute2, attribute3, value);
		this.difficulty = difficulty;
	}

	public int getAttribute1() {
		return attribute1;
	}

	@Min(1)
	public void setAttribute1(int attribute1) {
		this.attribute1 = attribute1;
	}

	public int getAttribute2() {
		return attribute2;
	}

	@Min(1)
	public void setAttribute2(int attribute2) {
		this.attribute2 = attribute2;
	}

	public int getAttribute3() {
		return attribute3;
	}

	@Min(1)
	public void setAttribute3(int attribute3) {
		this.attribute3 = attribute3;
	}

	public int getValue() {
		return value;
	}

	public void setValue(int value) {
		this.value = value;
	}

	public int getDifficulty() {
		return difficulty;
	}

	public void setDifficulty(int difficulty) {
		this.difficulty = difficulty;
	}

	public boolean isMinimumEffect() {
		return minimumEffect;
	}

	public void setMinimumEffect(boolean minimumEffectUsed) {
		this.minimumEffect = minimumEffectUsed;
	}

	public boolean isFesteMatrix() {
		return festeMatrix;
	}

	public void setFesteMatrix(boolean festeMatrix) {
		this.festeMatrix = festeMatrix;
	}

	public boolean isTollpatsch() {
		return tollpatsch;
	}

	public void setTollpatsch(boolean tollpatsch) {
		this.tollpatsch = tollpatsch;
	}

	public boolean isSpruchhemmung() {
		return spruchhemmung;
	}

	public void setSpruchhemmung(boolean spruchhemmung) {
		this.spruchhemmung = spruchhemmung;
	}

	@Override
	public String toString() {
		return ToStringBuilder.reflectionToString(this);
	}
}
